package com.example.victory.swagger.model;

import java.util.Objects;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import java.util.ArrayList;
import java.util.List;
import org.springframework.validation.annotation.Validated;
import javax.validation.Valid;

/**
 * ApiResponseGetCustomerOverallAccountData
 */
@Validated
@javax.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2021-04-26T10:50:39.083+08:00")

public class ApiResponseGetCustomerOverallAccountData   {
  @JsonProperty("baseInfo")
  @Valid
  private List<KeyValueDetail> baseInfo = null;

  @JsonProperty("partnerAccount")
  @Valid
  private List<KeyValueDetail> partnerAccount = null;

  @JsonProperty("businessAuthority")
  @Valid
  private List<KeyValueDetail> businessAuthority = null;

  @JsonProperty("riskEvaluation")
  @Valid
  private List<KeyValueDetail> riskEvaluation = null;

  @JsonProperty("contractInfo")
  @Valid
  private List<KeyValueDetail> contractInfo = null;

  @JsonProperty("customerBelongs")
  @Valid
  private List<KeyValueDetail> customerBelongs = null;

  public ApiResponseGetCustomerOverallAccountData baseInfo(List<KeyValueDetail> baseInfo) {
    this.baseInfo = baseInfo;
    return this;
  }

  public ApiResponseGetCustomerOverallAccountData addBaseInfoItem(KeyValueDetail baseInfoItem) {
    if (this.baseInfo == null) {
      this.baseInfo = new ArrayList<KeyValueDetail>();
    }
    this.baseInfo.add(baseInfoItem);
    return this;
  }

  /**
   * 基本信息
   * @return baseInfo
  **/
  @ApiModelProperty(value = "基本信息")

  @Valid

  public List<KeyValueDetail> getBaseInfo() {
    return baseInfo;
  }

  public void setBaseInfo(List<KeyValueDetail> baseInfo) {
    this.baseInfo = baseInfo;
  }

  public ApiResponseGetCustomerOverallAccountData partnerAccount(List<KeyValueDetail> partnerAccount) {
    this.partnerAccount = partnerAccount;
    return this;
  }

  public ApiResponseGetCustomerOverallAccountData addPartnerAccountItem(KeyValueDetail partnerAccountItem) {
    if (this.partnerAccount == null) {
      this.partnerAccount = new ArrayList<KeyValueDetail>();
    }
    this.partnerAccount.add(partnerAccountItem);
    return this;
  }

  /**
   * 股东账户
   * @return partnerAccount
  **/
  @ApiModelProperty(value = "股东账户")

  @Valid

  public List<KeyValueDetail> getPartnerAccount() {
    return partnerAccount;
  }

  public void setPartnerAccount(List<KeyValueDetail> partnerAccount) {
    this.partnerAccount = partnerAccount;
  }

  public ApiResponseGetCustomerOverallAccountData businessAuthority(List<KeyValueDetail> businessAuthority) {
    this.businessAuthority = businessAuthority;
    return this;
  }

  public ApiResponseGetCustomerOverallAccountData addBusinessAuthorityItem(KeyValueDetail businessAuthorityItem) {
    if (this.businessAuthority == null) {
      this.businessAuthority = new ArrayList<KeyValueDetail>();
    }
    this.businessAuthority.add(businessAuthorityItem);
    return this;
  }

  /**
   * 业务权限
   * @return businessAuthority
  **/
  @ApiModelProperty(value = "业务权限")

  @Valid

  public List<KeyValueDetail> getBusinessAuthority() {
    return businessAuthority;
  }

  public void setBusinessAuthority(List<KeyValueDetail> businessAuthority) {
    this.businessAuthority = businessAuthority;
  }

  public ApiResponseGetCustomerOverallAccountData riskEvaluation(List<KeyValueDetail> riskEvaluation) {
    this.riskEvaluation = riskEvaluation;
    return this;
  }

  public ApiResponseGetCustomerOverallAccountData addRiskEvaluationItem(KeyValueDetail riskEvaluationItem) {
    if (this.riskEvaluation == null) {
      this.riskEvaluation = new ArrayList<KeyValueDetail>();
    }
    this.riskEvaluation.add(riskEvaluationItem);
    return this;
  }

  /**
   * 风险测评
   * @return riskEvaluation
  **/
  @ApiModelProperty(value = "风险测评")

  @Valid

  public List<KeyValueDetail> getRiskEvaluation() {
    return riskEvaluation;
  }

  public void setRiskEvaluation(List<KeyValueDetail> riskEvaluation) {
    this.riskEvaluation = riskEvaluation;
  }

  public ApiResponseGetCustomerOverallAccountData contractInfo(List<KeyValueDetail> contractInfo) {
    this.contractInfo = contractInfo;
    return this;
  }

  public ApiResponseGetCustomerOverallAccountData addContractInfoItem(KeyValueDetail contractInfoItem) {
    if (this.contractInfo == null) {
      this.contractInfo = new ArrayList<KeyValueDetail>();
    }
    this.contractInfo.add(contractInfoItem);
    return this;
  }

  /**
   * 联系信息
   * @return contractInfo
  **/
  @ApiModelProperty(value = "联系信息")

  @Valid

  public List<KeyValueDetail> getContractInfo() {
    return contractInfo;
  }

  public void setContractInfo(List<KeyValueDetail> contractInfo) {
    this.contractInfo = contractInfo;
  }

  public ApiResponseGetCustomerOverallAccountData customerBelongs(List<KeyValueDetail> customerBelongs) {
    this.customerBelongs = customerBelongs;
    return this;
  }

  public ApiResponseGetCustomerOverallAccountData addCustomerBelongsItem(KeyValueDetail customerBelongsItem) {
    if (this.customerBelongs == null) {
      this.customerBelongs = new ArrayList<KeyValueDetail>();
    }
    this.customerBelongs.add(customerBelongsItem);
    return this;
  }

  /**
   * 客户归属
   * @return customerBelongs
  **/
  @ApiModelProperty(value = "客户归属")

  @Valid

  public List<KeyValueDetail> getCustomerBelongs() {
    return customerBelongs;
  }

  public void setCustomerBelongs(List<KeyValueDetail> customerBelongs) {
    this.customerBelongs = customerBelongs;
  }


  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ApiResponseGetCustomerOverallAccountData apiResponseGetCustomerOverallAccountData = (ApiResponseGetCustomerOverallAccountData) o;
    return Objects.equals(this.baseInfo, apiResponseGetCustomerOverallAccountData.baseInfo) &&
        Objects.equals(this.partnerAccount, apiResponseGetCustomerOverallAccountData.partnerAccount) &&
        Objects.equals(this.businessAuthority, apiResponseGetCustomerOverallAccountData.businessAuthority) &&
        Objects.equals(this.riskEvaluation, apiResponseGetCustomerOverallAccountData.riskEvaluation) &&
        Objects.equals(this.contractInfo, apiResponseGetCustomerOverallAccountData.contractInfo) &&
        Objects.equals(this.customerBelongs, apiResponseGetCustomerOverallAccountData.customerBelongs);
  }

  @Override
  public int hashCode() {
    return Objects.hash(baseInfo, partnerAccount, businessAuthority, riskEvaluation, contractInfo, customerBelongs);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ApiResponseGetCustomerOverallAccountData {\n");
    
    sb.append("    baseInfo: ").append(toIndentedString(baseInfo)).append("\n");
    sb.append("    partnerAccount: ").append(toIndentedString(partnerAccount)).append("\n");
    sb.append("    businessAuthority: ").append(toIndentedString(businessAuthority)).append("\n");
    sb.append("    riskEvaluation: ").append(toIndentedString(riskEvaluation)).append("\n");
    sb.append("    contractInfo: ").append(toIndentedString(contractInfo)).append("\n");
    sb.append("    customerBelongs: ").append(toIndentedString(customerBelongs)).append("\n");
    sb.append("}");
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces
   * (except the first line).
   */
  private String toIndentedString(java.lang.Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }
}

